﻿/**
* 
*/
package com.kgame5.xtank3d.model.tank.fsms.move {
import kgame5.kgu.spacial.SpacialManager;

import com.kgame5.xtank3d.GameEnum;
import com.kgame5.xtank3d.model.tank.fsms.TankState;
import com.kgame5.xtank3d.vo.MyTankVO;

public class StateMove extends TankState{
	//__________________Propetty__________________
	
	//______________________Method___________________
	public function StateMove(pvo:MyTankVO){
		super(GameEnum.STATE_TANK_MOVE, pvo);
	}

	//进入状态
	override public function enter(info:Object=null):void{
		tankVO.bMove=true;
	}

	//执行状态
	override public function update():void{
		
		switch(tankVO.input.dir) {
			case SpacialManager.DIR_UP:
			if( r.y==0){//如果是这个方向，则前进
				v.z=tankVO.body.MOV;// MathDG.W( v.z, rpg.MOV,rpg.ACC);
				v.x=0;
			}else{
				r.y=0;
				v.x=0;
			}
			break;
			case SpacialManager.DIR_DOWN:
			if( r.y==180){//如果是这个方向，则前进
				v.z= -tankVO.body.MOV;// MathDG.W( v.z, -tankVO.MOV,tankVO.ACC);
				v.x=0;
			}else{
				r.y=180;
				v.x=0;
			}
			break;
			case SpacialManager.DIR_LEFT:
			if( r.y==270){//如果是这个方向，则前进
				v.x=-tankVO.body.MOV;// MathDG.W( v.x, -tankVO.MOV,tankVO.ACC);
				v.z=0;
			}else{
				r.y=270;
				v.z=0;
			}
			break;
			case SpacialManager.DIR_RIGHT:
			if( r.y==90){//如果是这个方向，则前进
				v.x=tankVO.body.MOV;// MathDG.W( v.x, tankVO.MOV,tankVO.ACC);
				v.z=0;
			}else{
				r.y=90;
				v.z=0;
			}
			break;
			case SpacialManager.DIR_NULL://没有按方向则刹车
			this.fsm.SwitchState(GameEnum.STATE_TANK_STAND);
			break;
		}
	}
	
	//退出状态
	override public function exit():void{
		tankVO.bMove=false;
	}
}//end of class
}
